/**
 * 此模块是专门用于处理home页面中数据的
 */
// 引入接口方法
//  import {reqGetCategoryListData } from '../../api'

// 如果路径嵌套非常深，此时我们可以以src为源头来查找，@就表示src
import {reqGetBannerListData, reqGetCategoryListData, reqGetFloorsListData} from  '@/api'
// 3. 三连

// state中存储数据
const state = {
  // 存储三级导航数据
  categoryList: [],
  // 轮播图数据
  bannerList: [],
  // 楼层数据
  floorsList:[]
}

// 多用于异步操作  比如发送ajax请求  不能直接操作state中的数据
const actions = {
  // 1. 发送请求获取三级导航的数据
 async getCategoryListData(context) {
    const result = await reqGetCategoryListData()
    // console.log('store',result);
    if (result.code === 200) {
      context.commit('SAVE_CATEGORY_LIST_DATA',result.data)
    } else {
      console.log(result.message);
    }
  },
  // 2. 发送请求获取轮播图的数据
  async getBannerListData({commit}) {
    const result = await reqGetBannerListData()
    if (result.code === 200) {
      commit('SAVE_BANNER_LIST_DATA',result.data)
    } 
  },
  // 3. 获取楼层数据
  async getFloorsListData({commit}) {
    const result = await reqGetFloorsListData()
    if (result.code === 200) {
      commit('SAVE_FLOORS_LIST_DATA',result.data)
    }
  }
}

// 是用于操作state中的数据 增删改
const mutations = {
  // 这个方法有两个参数，第一个参数是state 第二个参数是传递过来的 数据
  // 1. 三级导航数据
  SAVE_CATEGORY_LIST_DATA(state,list) {
    state.categoryList = list
  },
  // 2. 轮播图数据
  SAVE_BANNER_LIST_DATA(state,bannerList) {
    state.bannerList = bannerList
  },
  // 3.楼层数据
  SAVE_FLOORS_LIST_DATA(state,floorsList){
    state.floorsList = floorsList
  }
}

// 相当于是一个计算属性
const getters = {}

export default {
  namespaced: true,  // 开启命名空间  实现模块化
  state,
  actions,
  mutations,
  getters
}